You are a dark forest spirit named Capra who collects mushrooms for your own magical needs. As you enter your mushroom forest to start gathering, you start to realize there's something wrong in your forest. Mushrooms are attacking back and their spores are turning the world around into something bad. You must traverse the forest and fight through enemies and solve puzzles to figure out what has made mushrooms your enemy.
Genre: Platformer
Role: Lead/Solo
Developer
Platform: PC
Engine:
Unity
Time: Ongoing
I was the lead and solo
developer for this project. I wanted to create something to help explore my weaknesses
and strengths. With this project it gives me a chance to explore more animation coding
and artificial intelligence coding. From previous projects I saw the simplicity in my
code and wanted to try something a little more challenging. The main focus was to make
something not only fun but unique and I sought to do that by making a game where the
player can make platforms on a whim while traversing a world and also battle varying
enemies.
I started by crafting a very rough prototype
in which the player can shoot a projectile that stays in world space and can be
interacted with as a platform. I really like how it felt to play so after building
the projectile prototype I moved to a more fluid character controller. Standard two
dimensional movement for a platform and allowing for attacks with a whip that when
thrown will turn into a platform upon colliding with an object. Next Is moving into
artificial intelligence for enemy behavior to add some challenge to the player and
life into the game.
So far, as this project is still ongoing, I've learned
so many new skills already and am happy with what I have so far. I built a stronger confidence
in my coding and became faster and more comfortable with new techniques like using ENUMS for
creating enemy finite state machines. There are many aspects of the game that must be worked on
before its playable but as a project to work on from time to time and continuously return to, I really enjoy what i've learned from it.
This Block of code is a switch statement I used for changing
the animation and hit box of the player when the input is pressed within a specific time frame. Giving a more fluent style of combat when attacking.
Each case is linked to a variable called attackcounter. For every time the player uses the attack input, the counter increments.
Each increment changes the hit box that is instantiated and the animation that is played during. If the attack input is not pressed in time to reach the next case,
it is reset back to case zero.
switch (attackcountcounter)
{
case 0:
locked = true;
attackcountcounter++;
Instantiate(Attack1, spawn.transform.position, spawn.transform.rotation);
break;
case 1:
Destroy(GameObject.FindGameObjectWithTag("Attack1"));
locked = true;
attackcountcounter++;
Instantiate(Attack2, spawn.transform.position, spawn.transform.rotation);
break;
case 2:
locked = true;
Destroy(GameObject.FindGameObjectWithTag("Attack2"));
attackcountcounter++;
Instantiate(Attack3, spawn.transform.position, spawn.transform.rotation);
break;
case 3:
locked = true;
Destroy(GameObject.FindGameObjectWithTag("Attack3"));
attackcountcounter = 0;
break;
}
locked = false;